home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX Installation Tools & Overlays 2001 May
/
SGI IRIX Installation Tools & Overlays 2001 May - Disc 3.iso
/
relnotes
/
dmedia_dev
/
ch09.z
/
ch09
Wrap
Text File
|
2001-04-16
|
15KB
|
397 lines
- 1 -
9. _M_o_v_i_e__L_i_b_r_a_r_y
This chapter lists information about the Movie Library
programming interface included IRIS Digital Media
Development Environment. It includes changes, additions,
and bug fixes since the IRIX 5.3 releases, known problems
and workarounds.
The IRIS Movie Library is a application programming
interface for the creation of programs which read, write,
and play movies. A movie is a file containing sequences of
images and/or audio. A movie is a useful display method for
graphical sequences which cannot be rendered in real time or
for any sequenced image data. The Movie Library currently
provides support for the native Silicon Graphics movie file
format, QuickTime(*) file format, MPEG I Systems Layer, and
the AVI format, and DIF format (DVC/DVCPro raw data). Not
all of the movie library features are available with all
file formats.
The main features of the Movie Library (MV) are:
+o Ability to read, write, and play movie files.
+o High level interface to image data compression.
+o Support for several file formats, including
Apple QuickTime(*)
AVI
DIF (Raw DV) files
MPEG-1 system bitstreams
MPEG-1 video bitstreams
SGI Movie
+o File-format independent API.
+o Asynchronous playback support with flexible controls.
+o Basic editing features for image and audio sequences.
+o Support for embedded movies in applications software.
The Movie Library is composed of two high-level DSO's,
_l_i_b_m_o_v_i_e_f_i_l_e._s_o and _l_i_b_m_o_v_i_e_p_l_a_y._s_o, which contain the
public movie API calls. Debugging versions of the library
- 2 -
are available as well (/_u_s_r/_l_i_b/_d_e_b_u_g/_l_i_b_m_o_v_i_e_f_i_l_e._s_o and
/_u_s_r/_l_i_b/_d_e_b_u_g/_l_i_b_m_o_v_i_e_p_l_a_y._s_o). They perform extra error
checking on all parameters passed into the library and
provide more extensive feedback to the programmer as to what
might be wrong. However, they also incur a substantial
overhead and it is not recommended that they be for anything
other than testing. They may be used by setting
LD_LIBRARY_PATH (or LD_LIBRARYN32_PATH) to point at
/usr/lib/debug (or /usr/lib32/debug) and running the
application. See rrrrlllldddd((((1111)))) for more information.
For additional information about the Movie Library see the
overview manual page mmmmvvvvIIIInnnnttttrrrroooo(3mv).
9.1 _P_r_o_g_r_a_m_m_i_n_g__E_x_a_m_p_l_e_s
A number of example programs which provide coverage of many
of the calls in the library are also included. They are
contained in the dmedia_dev.src.examples portion of the
install image and get installed in
/usr/share/src/dmedia/movie. A README file there explains
each of the example programs.
9.2 _C_h_a_n_g_e_s__a_n_d__A_d_d_i_t_i_o_n_s
This section lists changes and additions made to the Movie
Library since the release of IRIX 5.3.
IRIX 6.3 introduced a new version of the Movie Library. This
new verion is composed of two high-level DSO's,
_l_i_b_m_o_v_i_e_f_i_l_e._s_o and _l_i_b_m_o_v_i_e_p_l_a_y._s_o, which contain the
public movie API calls, together with a few private
rendering and display port DSO modules (see
/_u_s_r/_l_i_b/_d_m_e_d_i_a/_m_o_v_i_e/*._s_o) which are loaded internally by
the movie playback DSO. Applications may link with either
"-lmovieplay -lmoviefile" or just "-lmoviefile" depending on
their requirements. Applications do not link directly with
the low-level rendering/display modules. Applications built
using versions of _l_i_b_m_o_v_i_e._a or _l_i_b_m_o_v_i_e_G_L._a from previous
IRIX releases should continue to operate correctly without
recompile on 6.3 and later releases.
+o IRIX 6.5.12 adds support for reading of 1, 2, 4, 8, 16
and 24 bit uncompressed AVI files. Originally only 32
bit uncompressed AVI files were supported.
+o IRIX 6.5.12 adds support for reading of Microsoft RLE
compressed AVI files.
- 3 -
+o IRIX 6.5.12 adds support to allow reading of compressed
header Quicktime(*) movie files.
+o For Irix 6.5, the movie library has been enhanced to
support certain common kinds of compressed audio in
QuickTime(*) movies. QuickTime(*) movies with IMA4
(also known as IMA4:1) compressed audio tracks are now
readable, as are DV-Audio compressed tracks. (DV-Audio
compression is also supported in DIF streams.) Note
that IMA4 is supported read-only (ie, decompress-only).
DV-Audio compressed data can be created only when
exporting a DIF stream using mmmmvvvvEEEExxxxppppoooorrrrttttFFFFllllaaaatttttttteeeennnneeeeddddFFFFiiiilllleeee.
+o Standard QuickTime(*) Motion JPEG-A (MJPEG-A) field
based compression is now supported in Irix 6.5 (it was
available in 6.3 with appropriate patches as well).
MJPEG-A is a powerful format because it is cross-
platform, so that the same movie can be played on
SGI's, Mac's and PC's in realtime, with appropriate
hardware, such as the O2's built in ICE hardware.
+o In Irix 6.5, a new function has been added to allow
simplified generation of movies which are optimized for
playback. Please see man mmmmvvvvEEEExxxxppppoooorrrrttttFFFFllllaaaatttttttteeeennnneeeeddddFFFFiiiilllleeee.
+o The movie library supports more hardware for playing
back movies, such as Cosmo Compress, O2's built in ICE,
Impact Compression, etc.
+o Several functions have been added to the Movie Library
to provide time based access to and editing of movie
data in addition to the existing frame based calls.
See the "FRAME, TIME and TIMESCALE" section of
mmmmvvvvIIIInnnnttttrrrroooo(3dm) for more details.
+o In 5.3 mmmmvvvvRRRReeeeaaaaddddFFFFrrrraaaammmmeeeessss(3dm) would return different formats
(eg, pixel packing, orientation, etc), depending upon
how the data was stored in the file. Now
mmmmvvvvRRRReeeeaaaaddddFFFFrrrraaaammmmeeeessss(3dm) ALWAYS returns the same pixel
formats.
mmmmvvvvIIIInnnnsssseeeerrrrttttFFFFrrrraaaammmmeeeessss(3dm) used to expect its input format
(eg, pixel packing orientation, etc) to be correlated
to the file format/codec. Now it ALWAYS expects data to
be in the same format.
These changes were made to prevent requiring every
application to understand how to perform image
conversions.
See the man page for additional information about
- 4 -
mmmmvvvvRRRReeeeaaaaddddFFFFrrrraaaammmmeeeessss(3dm) and mmmmvvvvIIIInnnnsssseeeerrrrttttFFFFrrrraaaammmmeeeessss(3dm).
+o The QuickTime(*) Compressor Library product no longer
exists. Applications that link with _l_i_b_m_o_v_i_e._s_o will
now be able to read and create movies compressed with
the Apple Animation and Apple Video compression
algorithms without linking with _l_i_b_q_t._a or calling
mmmmvvvvIIIInnnniiiittttQQQQuuuuiiiicccckkkkTTTTiiiimmmmeeee. Applications will also be able to read
and write Cinepak (Compact Video) movies. The movie
library will also recognize and play back QuickTime(*)
movies compressed with Indeo(tm) compression, and
DVC/DVCPro compression.
+o The Movie Library now supports multiple audio and video
tracks in QuickTime(*) files. New calls allow the
programmer to find the number of tracks and retrieve
track handles on each one. Multiple tracks of a given
medium may be played simultaneously or sequentially
under program control.
+o The Movie Library has been extended to allow external
data references for tracks. A track that contains an
external data reference has data that resides in a
separate file. The Movie Library access this file as
necessary during movie editing and playback.
+o The Movie Library no longer requires that each frame in
an image track have the same duration. A sequence of
an image track may be scaled by an application to
increase or shorten its playback time.
+o In general, many more forms of QuickTime(*) movies are
recognized.
+o Read only support for MPEG I Systems streams is new in
this version of the Movie Library. MPEG movies may be
played using the Movie Library's playback calls.
However, most calls that manipulate movie data, such as
editing or reading compressed images, are not supported
for MPEG files.
+o AVI support has been added to the movie library. The
compression types currently supported for AVI files are
Cinepak, Indeo, and uncompressed.
+o The Movie Library now supports controlling the image
compression quality, bitrate, and keyframe frequency of
data in an image track. These qualities can be
controlled by setting the appropriate DMparams when the
image track is created. See the mmmmvvvvAAAAddddddddTTTTrrrraaaacccckkkk(3dm) man
page for more details.
- 5 -
+o The Movie Library now supports software scaling of the
volume of a playing movie. See
mmmmvvvvGGGGeeeettttMMMMoooovvvviiiieeeePPPPllllaaaayyyyVVVVoooolllluuuummmmeeee(3dm) for more details.
9.3 _B_u_g__F_i_x_e_s
This sections lists some of the known bugs that have been
fixed since 5.3
+o Bug #610693: As of Irix 6.5.1, uncompressed frame-based
(ie, interleaved-fields) uncompressed 8-bit YUV422
QuickTime(*) movies generated by the SGI movie library
will now be readable on other platforms which support
QuickTime(*) 3.0. Note that these movies may not play
back correctly on older Irix releases, but movies
generated on older Irix releases will be playable on
Irix 6.5.1.
+o The problems many users ran into with upside down and
non-color converted uncompressed QuickTime(*) movies
are solved by the fact that mvReadFrames now always
returns XBGR, bottom-to-top, non interlaced data.
+o Stereo audio in QuickTime(*) files is now handled
correctly.
+o The Movie Library's playback engine has been modified
to pick up edits made to a movie. For example, if
frames are added to a movie that's been bound to a
window but is currently not playing the playback
instance will pick up the change and play all the
frames of the movie. It should be noted that no edits
should be made to the movie while the movie is
currently playing.
+o The Movie Library now supports playing back tracks of
different lengths. For example, playing a movie with a
video track that is longer than its audio track will
play all the frames of the video track even after the
audio has stopped playing.
+o Calling mmmmvvvvSSSSttttoooopppp as the playback engine reached the last
frame of a movie could result in a deadlock condition
in the 5.3 Movie Library. This can no longer happen.
- 6 -
9.4 _K_n_o_w_n__P_r_o_b_l_e_m_s__a_n_d__W_o_r_k_a_r_o_u_n_d_s
This section lists some of the known problems with the Movie
Library.
+o The SGI movie file format used by the Movie Library is
different from that used prior to the release of Irix
5.2. However, movies in the older format can still be
read and played by the Movie Library. Only the current
format can be written.
+o If the machine on which you are playing a movie cannot
handle the frame rate specified, the audio may sound
choppy.
+o Setting the play speed of the movie to 0 with
mvSetPlaySpeed() will cause the movie library to crash.
The workaround for this is to call mvStop() instead of
setting the play speed to 0.
+o If a QuickTime(*) movie contains complex elements that
the Movie Library does not fully support, the movie
will be opened read only. The movie must be copied to
create a movie that can be edited.
(*) QuickTime is a registered trademark of Apple Computer,
Inc.